在正常的 query 中夾帶不懷好意的 SQL指令,若程式未能正確判斷,便會將這些指令也夾帶進去執行,造成危害。
例如在 web application 中登入的 SQL 驗證語法:
select * from users where username = '$name' and password = '$pwd';
這樣只要我在帳號部分輸入: admin 密碼輸入: ' or '1'='1
構造出來的惡意指令就是:
select * from users where username = 'admin' and pssword = '' or '1'='1'
因此就成功以 admin 帳號登入了。
這就是最基本的 SQL Injection!